package com.ruoyi.tcsp.service.impl;

import java.util.List;
import java.util.concurrent.TimeUnit;

import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.tcsp.domain.mysql.TcspBaseFile;
import com.ruoyi.tcsp.utils.MinioUtils;
import io.minio.http.Method;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.tcsp.mapper.TcspBaseFileMapper;;
import com.ruoyi.tcsp.service.ITcspBaseFileService;

/**
 * 文件下载专区文件Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-04-20
 */
@Service
public class TcspBaseFileServiceImpl implements ITcspBaseFileService 
{
    @Autowired
    private TcspBaseFileMapper tcspBaseFileMapper;
    @Autowired
    private MinioUtils minioUtils;

    /**
     * 查询文件下载专区文件
     * 
     * @param id 文件下载专区文件主键
     * @return 文件下载专区文件
     */
    @Override
    public TcspBaseFile selectTcspBaseFileById(Long id)
    {
        TcspBaseFile tcspBaseFile = tcspBaseFileMapper.selectTcspBaseFileById(id);
        String fileUrl = minioUtils.getFileUrl(tcspBaseFile.getFileUrl());
        tcspBaseFile.setFileUrl(fileUrl);
        return tcspBaseFile;
    }

    /**
     * 查询文件下载专区文件列表
     * 
     * @param tcspBaseFile 文件下载专区文件
     * @return 文件下载专区文件
     */
    @Override
    public List<TcspBaseFile> selectTcspBaseFileList(TcspBaseFile tcspBaseFile)
    {
        List<TcspBaseFile> tcspBaseFiles = tcspBaseFileMapper.selectTcspBaseFileList(tcspBaseFile);
        for (int i = 0; i < tcspBaseFiles.size(); i++) {
            tcspBaseFiles.get(i).setFileUrl(minioUtils.getPolicyUrl(tcspBaseFiles.get(i).getFileUrl(), Method.GET,1, TimeUnit.DAYS));
        }
        return tcspBaseFiles;
    }

    /**
     * 新增文件下载专区文件
     * 
     * @param tcspBaseFile 文件下载专区文件
     * @return 结果
     */
    @Override
    public int insertTcspBaseFile(TcspBaseFile tcspBaseFile, LoginUser loginUser)
    {
        tcspBaseFile.setCreateTime(DateUtils.getNowDate());
        tcspBaseFile.setCreateBy(loginUser.getUsername());
        return tcspBaseFileMapper.insertTcspBaseFile(tcspBaseFile);
    }

    /**
     * 修改文件下载专区文件
     * 
     * @param tcspBaseFile 文件下载专区文件
     * @return 结果
     */
    @Override
    public int updateTcspBaseFile(TcspBaseFile tcspBaseFile)
    {
        return tcspBaseFileMapper.updateTcspBaseFile(tcspBaseFile);
    }

    /**
     * 批量删除文件下载专区文件
     * 
     * @param ids 需要删除的文件下载专区文件主键
     * @return 结果
     */
    @Override
    public int deleteTcspBaseFileByIds(Long[] ids)
    {
        return tcspBaseFileMapper.deleteTcspBaseFileByIds(ids);
    }

    /**
     * 删除文件下载专区文件信息
     * 
     * @param id 文件下载专区文件主键
     * @return 结果
     */
    @Override
    public int deleteTcspBaseFileById(Long id)
    {
        return tcspBaseFileMapper.deleteTcspBaseFileById(id);
    }
}
